﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STDTO.Interfaces;

namespace STDTO.DataTransferObjects.Interfaces
{
    /// <summary>
    /// Extend the IDataTransferObject to support using IDataTrasferObjectToEntityMapper
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface ISelfTrackingDataTransferObjectEx<T> : ISelfTrackingDataTransferObject<T>
    {
        void Populate(T entity, IDataTrasferObjectToEntityMapper entityMapper);
        T Clone(bool getOriginalValue, IDataTrasferObjectToEntityMapper entityMapper);
        void ApplyChanges(T enitity, IDataTrasferObjectToEntityMapper entityMapper);
    }
}
